home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / short28.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  45KB  |  2,170 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "short.h"
  9. /*No:PROC_CALL_0.feature_name*/
  10.  
  11.  
  12. void r150run_feature_match(T150* C){
  13. r150run_feature_has_no_result(C);
  14. /*[IF*/
  15. if((X312arg_count((C)->_run_feature/*12*/))>(0)){
  16. r67add_position(X77start_position((C)->_feature_name/*8*/));
  17. r67add_position(X312start_position((C)->_run_feature/*12*/));
  18. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms150_50512);
  19. r67fatal_error((T67*)(oBC11eh),b1);
  20. }/*]*/
  21. }
  22. /*FI]*/
  23. }
  24. /*No:PROC_CALL_0.arguments*/
  25.  
  26.  
  27. T0* r150runnable_expression(T0* a1,T0* a2){
  28. T0* R=NULL;
  29. R=X53to_runnable(a1,a2);
  30. /*[IF*/
  31. if((R)==((void*)(NULL))){
  32. r67add_position(X53start_position(a1));
  33. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms105_16515);
  34. r67fatal_error((T67*)(oBC11eh),b1);
  35. }/*]*/
  36. }
  37. /*FI]*/
  38. return R;
  39. }
  40.  
  41.  
  42. T0* r150start_position(T150* C){
  43. T0* R=NULL;
  44. R=X77start_position((C)->_feature_name/*8*/);
  45. return R;
  46. }
  47.  
  48.  
  49. T0* r150add_comment(T150* C,T0* a1){
  50. T0* R=NULL;
  51. /*[IF*/
  52. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  53. R=(T0*)C;
  54. }
  55. /*AF*/else{
  56. {T213*n=malloc(sizeof(*n));
  57. *n=M213;
  58. r213make(n,(T0*)C,a1);
  59. R=(T0*)n;
  60. }
  61. }
  62. /*FI]*/
  63. return R;
  64. }
  65.  
  66.  
  67. void r150run_feature_has_no_result(T150* C){
  68. /*[IF*/
  69. if((X312result_type((C)->_run_feature/*12*/))!=((void*)(NULL))){
  70. r67add_position(X312start_position((C)->_run_feature/*12*/));
  71. r67add_position(X77start_position((C)->_feature_name/*8*/));
  72. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms149_67122);
  73. r67fatal_error((T67*)(oBC11eh),b1);
  74. }/*]*/
  75. }
  76. /*FI]*/
  77. }
  78.  
  79.  
  80. T0* r150to_runnable(T150* C,T0* a1){
  81. T0* R=NULL;
  82. T0* _rf=NULL;
  83. T0* _t=NULL;
  84. _t=r150runnable_expression((C)->_target/*4*/,a1);
  85. _rf=r150run_feature_for(C,_t,a1);
  86. /*[IF*/
  87. if(((C)->_run_feature/*12*/)==((void*)(NULL))){
  88. C->_target=_t;
  89. C->_run_feature=_rf;
  90. r150run_feature_match(C);
  91. R=(T0*)C;
  92. }
  93.  else if((_t)==((void*)((C)->_target/*4*/))){
  94. R=(T0*)C;
  95. }
  96. else{
  97. {T150*n=malloc(sizeof(*n));
  98. *n=M150;
  99. r150make(n,_t,(C)->_feature_name/*8*/);
  100. R=(T0*)n;
  101. }
  102. R=r150to_runnable(((T150*)R),a1);
  103. }
  104. /*FI]*/
  105. return R;
  106. }
  107. /*No:PROC_CALL_0.set_run_feature*/
  108.  
  109.  
  110. T0* r150run_feature_for(T150* C,T0* a1,T0* a2){
  111. T0* R=NULL;
  112. T0* _rc=NULL;
  113. _rc=X46run_class(X53result_type(a1));
  114. R=r310get_rf(((T310*)_rc),a1,(C)->_feature_name/*8*/,a2);
  115. return R;
  116. }
  117. /*No:PROC_CALL_0.target*/
  118. /*No:PROC_CALL_0.run_feature*/
  119. /*No:PROC_CALL_0.end_mark_comment*/
  120.  
  121.  
  122. void r150make(T150* C,T0* a1,T0* a2){
  123. C->_target=a1;
  124. C->_feature_name=a2;
  125. }
  126.  
  127.  
  128. T0* r150make_runnable(T150* C,T0* a1,T0* a2,T0* a3){
  129. T0* R=NULL;
  130. /*[IF*/
  131. if(((C)->_run_feature/*12*/)==((void*)(NULL))){
  132. C->_target=a1;
  133. C->_run_feature=a3;
  134. R=(T0*)C;
  135. }
  136. else{
  137. {T150*n=malloc(sizeof(*n));
  138. *n=M150;
  139. r150make(n,a1,(C)->_feature_name/*8*/);
  140. R=(T0*)n;
  141. }
  142. /*[IRF3.3set_run_feature*/((((T150*)(((T150*)R))))->_run_feature)=(a3);
  143. /*]*/
  144. }
  145. /*FI]*/
  146. return R;
  147. }
  148. /*No:PROC_CALL_0.arg_count*/
  149. /*No:PROC_CALL_0.fatal_error*/
  150.  
  151.  
  152. void r246anchor_cycle_start(T246* C){
  153. T2 _i=0;
  154. /*[IF*/
  155. if((((T68*)(oBC244visited))->_upper/*8*/)<(0)){
  156. r68add_last((T68*)(oBC244visited),(C)->_start_position/*4*/);
  157. }
  158.  else if(r68fast_has((T68*)(oBC244visited),(C)->_start_position/*4*/)){
  159. _i=0;
  160. while (!((_i)>(((T68*)(oBC244visited))->_upper/*8*/))) {
  161. r67add_position(/*(IRF4.6item*/(((T68*)(oBC244visited))->_storage/*0*/)[_i]/*)*/);
  162. _i=(_i)+(1);
  163. }
  164. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_47439);
  165. r67fatal_error((T67*)(oBC11eh),b1);
  166. }/*]*/
  167. }
  168. else{
  169. r68add_last((T68*)(oBC244visited),(C)->_start_position/*4*/);
  170. }
  171. /*FI]*/
  172. }
  173.  
  174.  
  175. void r246anchor_cycle_end(T246* C){
  176. /*[IF*/
  177. if(((C)->_start_position/*4*/)==((void*)(/*(IRF4.5first*//*(IRF4.6item*/(((T68*)(oBC244visited))->_storage/*0*/)[0]/*)*//*)*/))){
  178. /*[IRF3.3clear*/((((T68*)((T68*)(oBC244visited))))->_upper)=(-(1));
  179. /*]*/
  180. }
  181. /*FI]*/
  182. }
  183.  
  184.  
  185. T0* r246generic_list(T246* C){
  186. T0* R=NULL;
  187. /*[IF*/
  188. if(r246is_generic(C)){
  189. R=X46generic_list(r246run_type(C));
  190. }
  191. else{
  192. r246fatal_error_generic_list(C);
  193. }
  194. /*FI]*/
  195. return R;
  196. }
  197.  
  198.  
  199. T0* r246base_class(T246* C){
  200. T0* R=NULL;
  201. T0* _bcn=NULL;
  202. _bcn=r246base_class_name(C);
  203. /*[IF*/
  204. if((_bcn)!=((void*)(NULL))){
  205. R=r47base_class(((T47*)_bcn));
  206. }
  207. else{
  208. /*[IRF3.6append*/{T0* b1=((T0*)ms46_37098);
  209. r7append((T7*)(oBC67explanation),b1);
  210. }/*]*/
  211. r67add_type((T0*)C,((T0*)ms12_47));
  212. r67print_as_fatal_error((T67*)(oBC11eh));
  213. }
  214. /*FI]*/
  215. return R;
  216. }
  217.  
  218.  
  219. T0* r246base_class_name(T246* C){
  220. T0* R=NULL;
  221. R=X46base_class_name(r246run_type(C));
  222. return R;
  223. }
  224. /*No:TYPE_LIKE_ARGUMENT.start_position*/
  225. /*No:TYPE_LIKE_ARGUMENT.is_formal_generic*/
  226.  
  227.  
  228. void r246used_as_reference(T246* C){
  229. X46used_as_reference(r246run_type(C));
  230. }
  231.  
  232.  
  233. T6 r246is_a_in(T246* C,T0* a1,T0* a2){
  234. T6 R=0;
  235. T0* _ct=NULL;
  236. T0* _t2=NULL;
  237. T0* _t1=NULL;
  238. /*[IF*/
  239. if(((C)->_written_mark/*12*/)==((void*)(X46written_mark(a1)))){
  240. R=1;
  241. }
  242. else{
  243. _ct=(((T310*)a2))->_current_type/*0*/;
  244. _t1=r246to_runnable(C,_ct);
  245. _t2=X46to_runnable(a1,_ct);
  246. /*[IF*/
  247. if((X46run_time_mark(_t1))==((void*)(X46run_time_mark(_t2)))){
  248. R=1;
  249. }
  250. else{
  251. R=X46is_a(_t1,_t2);
  252. }
  253. /*FI]*/
  254. }
  255. /*FI]*/
  256. return R;
  257. }
  258. /*No:TYPE_LIKE_ARGUMENT.rank*/
  259. /*No:TYPE_LIKE_ARGUMENT.fz_bad_anchor*/
  260.  
  261.  
  262. T2 r246id(T246* C){
  263. T2 R=0;
  264. R=((T310*)(r246run_class(C)))->_id/*4*/;
  265. return R;
  266. }
  267.  
  268.  
  269. T6 r246is_pointer(T246* C){
  270. T6 R=0;
  271. R=X46is_pointer(r246run_type(C));
  272. return R;
  273. }
  274.  
  275.  
  276. T0* r246look_up_for(T246* C,T0* a1,T0* a2){
  277. T0* R=NULL;
  278. R=r22look_up_for((T22*)(r246base_class(C)),a1,a2);
  279. return R;
  280. }
  281.  
  282.  
  283. T0* r246to_runnable(T246* C,T0* a1){
  284. T0* R=NULL;
  285. T0* _rt=NULL;
  286. T0* _rf=NULL;
  287. r246anchor_cycle_start(C);
  288. _rf=r59top_rf((T59*)(oBC11small_eiffel));
  289. /*[IF*/
  290. if((X312arguments(_rf))==((void*)(NULL))){
  291. r67add_position((C)->_start_position/*4*/);
  292. r67add_position(X312start_position(_rf));
  293. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_10043);
  294. r67fatal_error((T67*)(oBC11eh),b1);
  295. }/*]*/
  296. }
  297. /*FI]*/
  298. /*[IF*/
  299. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  300. C->_run_feature=_rf;
  301. R=(T0*)C;
  302. }
  303.  else if(((C)->_run_feature/*16*/)==((void*)(_rf))){
  304. R=(T0*)C;
  305. }
  306. else{
  307. {T246*n=malloc(sizeof(*n));
  308. *n=M246;
  309. r246with(n,(T0*)C,_rf);
  310. R=(T0*)n;
  311. }
  312. }
  313. /*FI]*/
  314. _rt=r246run_type(((T246*)R));
  315. /*[IF*/
  316. if(X46is_anchored(_rt)){
  317. _rt=X46to_runnable(_rt,a1);
  318. }
  319. /*FI]*/
  320. r246anchor_cycle_end(C);
  321. return R;
  322. }
  323.  
  324.  
  325. T0* r246run_type(T246* C){
  326. T0* R=NULL;
  327. T0* _fal=NULL;
  328. _fal=X312arguments((C)->_run_feature/*16*/);
  329. R=r175type(((T175*)_fal),/*(IRF4.6rank*/(((T176*)((C)->_like_what/*8*/)))->_rank/*8*//*)*/);
  330. /*[IF*/
  331. if(X46is_run_type(R)){
  332. R=X46run_type(R);
  333. }
  334. /*FI]*/
  335. return R;
  336. }
  337.  
  338.  
  339. T0* r246run_class(T246* C){
  340. T0* R=NULL;
  341. R=r59run_class(r246run_type(C));
  342. return R;
  343. }
  344.  
  345.  
  346. T6 r246has_creation(T246* C,T0* a1){
  347. T6 R=0;
  348. R=X46has_creation(r246run_type(C),a1);
  349. return R;
  350. }
  351.  
  352.  
  353. T0* r246expanded_initializer(T246* C){
  354. T0* R=NULL;
  355. R=X46expanded_initializer(r246run_type(C));
  356. return R;
  357. }
  358. /*No:TYPE_LIKE_ARGUMENT.fz_cad*/
  359. /*No:TYPE_LIKE_ARGUMENT.run_feature*/
  360. /*No:TYPE_LIKE_ARGUMENT.is_like_current*/
  361.  
  362.  
  363. T6 r246is_boolean(T246* C){
  364. T6 R=0;
  365. R=X46is_boolean(r246run_type(C));
  366. return R;
  367. }
  368.  
  369.  
  370. T6 r246is_generic(T246* C){
  371. T6 R=0;
  372. R=X46is_generic(r246run_type(C));
  373. return R;
  374. }
  375.  
  376.  
  377. T6 r246is_bit(T246* C){
  378. T6 R=0;
  379. R=X46is_bit(r246run_type(C));
  380. return R;
  381. }
  382.  
  383.  
  384. T6 r246is_real(T246* C){
  385. T6 R=0;
  386. R=X46is_real(r246run_type(C));
  387. return R;
  388. }
  389.  
  390.  
  391. void r246with(T246* C,T0* a1,T0* a2){
  392. C->_start_position=(((T246*)a1))->_start_position/*4*/;
  393. C->_like_what=(((T246*)a1))->_like_what/*8*/;
  394. C->_written_mark=(((T246*)a1))->_written_mark/*12*/;
  395. C->_run_feature=a2;
  396. }
  397.  
  398.  
  399. T0* r246smallest_ancestor(T246* C,T0* a1){
  400. T0* R=NULL;
  401. R=X46smallest_ancestor(r246run_type(C),a1);
  402. return R;
  403. }
  404.  
  405.  
  406. T6 r246is_any(T246* C){
  407. T6 R=0;
  408. R=X46is_any(r246run_type(C));
  409. return R;
  410. }
  411. /*No:TYPE_LIKE_ARGUMENT.fatal_error*/
  412.  
  413.  
  414. T0* r246run_time_mark(T246* C){
  415. T0* R=NULL;
  416. /*[IF*/
  417. if((r246run_type(C))!=((void*)(NULL))){
  418. R=X46run_time_mark(r246run_type(C));
  419. }
  420. /*FI]*/
  421. return R;
  422. }
  423.  
  424.  
  425. T6 r246is_expanded(T246* C){
  426. T6 R=0;
  427. R=X46is_expanded(r246run_type(C));
  428. return R;
  429. }
  430.  
  431.  
  432. T6 r246is_basic_eiffel_expanded(T246* C){
  433. T6 R=0;
  434. R=X46is_basic_eiffel_expanded(r246run_type(C));
  435. return R;
  436. }
  437.  
  438.  
  439. void r246short_hook(T246* C){
  440. r39hook_or((T39*)(oBC11short_print),((T0*)ms246_1724),((T0*)ms246_2340));
  441. r176short((T176*)((C)->_like_what/*8*/));
  442. }
  443. /*No:TYPE_LIKE_ARGUMENT.fz_like*/
  444.  
  445.  
  446. T6 r246is_string(T246* C){
  447. T6 R=0;
  448. R=X46is_string(r246run_type(C));
  449. return R;
  450. }
  451.  
  452.  
  453. T6 r246is_integer(T246* C){
  454. T6 R=0;
  455. R=X46is_integer(r246run_type(C));
  456. return R;
  457. }
  458. /*No:TYPE_LIKE_ARGUMENT.is_like_feature*/
  459. /*No:TYPE_LIKE_ARGUMENT.fz_dot*/
  460. /*No:TYPE_LIKE_ARGUMENT.is_anchored*/
  461.  
  462.  
  463. T6 r246is_run_type(T246* C){
  464. T6 R=0;
  465. /*[IF*/
  466. if(((C)->_run_feature/*16*/)!=((void*)(NULL))){
  467. R=X46is_run_type(r246run_type(C));
  468. }
  469. /*FI]*/
  470. return R;
  471. }
  472.  
  473.  
  474. T6 r246is_a(T246* C,T0* a1){
  475. T6 R=0;
  476. R=X46is_a(r246run_type(C),a1);
  477. return R;
  478. }
  479.  
  480.  
  481. T6 r246is_character(T246* C){
  482. T6 R=0;
  483. R=X46is_character(r246run_type(C));
  484. return R;
  485. }
  486.  
  487.  
  488. T6 r246is_reference(T246* C){
  489. T6 R=0;
  490. R=X46is_reference(r246run_type(C));
  491. return R;
  492. }
  493. /*No:TYPE_LIKE_ARGUMENT.written_mark*/
  494. /*No:TYPE_LIKE_ARGUMENT.like_what*/
  495. /*No:TYPE_LIKE_ARGUMENT.tmp_written_mark*/
  496.  
  497.  
  498. void r246make(T246* C,T0* a1,T0* a2){
  499. C->_start_position=a1;
  500. C->_like_what=a2;
  501. r7copy((T7*)(((T0*)ms244_87371)),((T0*)ms12_1724));
  502. r7extend((T7*)(((T0*)ms244_87371)),'\40');
  503. r7append((T7*)(((T0*)ms244_87371)),r176to_string((T176*)((C)->_like_what/*8*/)));
  504. C->_written_mark=r78item(((T0*)ms244_87371));
  505. }
  506.  
  507.  
  508. T6 r246is_none(T246* C){
  509. T6 R=0;
  510. R=X46is_none(r246run_type(C));
  511. return R;
  512. }
  513.  
  514.  
  515. T6 r246is_array(T246* C){
  516. T6 R=0;
  517. R=X46is_array(r246run_type(C));
  518. return R;
  519. }
  520.  
  521.  
  522. void r246fatal_error_generic_list(T246* C){
  523. r67add_type((T0*)C,((T0*)ms46_29184));
  524. r67print_as_fatal_error((T67*)(oBC11eh));
  525. }
  526. /*No:TYPE_LIKE_ARGUMENT.is_like_argument*/
  527.  
  528.  
  529. T6 r246is_double(T246* C){
  530. T6 R=0;
  531. R=X46is_double(r246run_type(C));
  532. return R;
  533. }
  534.  
  535.  
  536. void r246short(T246* C){
  537. r39hook((T39*)(oBC11short_print),((T0*)ms46_891));
  538. r246short_hook(C);
  539. r39hook((T39*)(oBC11short_print),((T0*)ms46_888));
  540. }
  541. /*No:CST_ATT_STRING.base_class*/
  542.  
  543.  
  544. T0* r195start_position(T195* C){
  545. T0* R=NULL;
  546. R=X77start_position(/*(IRF4.6first_name*/r79item(((T79*)((C)->_names/*8*/)),1)/*)*/);
  547. return R;
  548. }
  549.  
  550.  
  551. T6 r195is_merge_with(T195* C,T0* a1,T0* a2){
  552. T6 R=0;
  553. R=1;
  554. /*[IF*/
  555. if(((C)->_result_type/*20*/)!=((void*)(X87result_type(a1)))){
  556. /*[IF*/
  557. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
  558. R=0;
  559. }
  560. /*FI]*/
  561. }
  562. /*FI]*/
  563. /*[IF*/
  564. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X87arguments(a1)))){
  565. /*[IF*/
  566. {/*AT*/R=0;
  567. }
  568. /*FI]*/
  569. }
  570. /*FI]*/
  571. /*[IF*/
  572. if(R){
  573. /*[IF*/
  574. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  575. R=X46is_a_in((C)->_result_type/*20*/,X87result_type(a1),a2);
  576. }
  577. /*FI]*/
  578. /*[IF*/
  579. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  580. R=r175is_a_in((T175*)(/*(IRF4.1arguments*/NULL/*)*/),X87arguments(a1),a2);
  581. }
  582. /*FI]*/
  583. /*[IF*/
  584. if(!(R)){
  585. R=1;
  586. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  587. /*]*/
  588. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  589. /*]*/
  590. /*]*/
  591. /*[IF*/
  592. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  593. R=X46is_a_in(X87result_type(a1),(C)->_result_type/*20*/,a2);
  594. }
  595. /*FI]*/
  596. /*[IF*/
  597. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  598. R=r175is_a_in((T175*)(X87arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
  599. }
  600. /*FI]*/
  601. }
  602. /*FI]*/
  603. }
  604. /*FI]*/
  605. /*[IF*/
  606. if(R){
  607. r195merge_header_comments(C,a1);
  608. }
  609. /*FI]*/
  610. return R;
  611. }
  612. /*No:CST_ATT_STRING.first_name*/
  613. /*No:CST_ATT_STRING.first_value*/
  614. /*No:CST_ATT_STRING.em1*/
  615. /*No:CST_ATT_STRING.header_comment*/
  616. /*No:CST_ATT_STRING.names*/
  617. /*No:CST_ATT_STRING.result_type*/
  618. /*No:CST_ATT_STRING.code_require*/
  619. /*No:CST_ATT_STRING.make_e_feature*/
  620.  
  621.  
  622. void r195add_into(T195* C,T0* a1){
  623. T0* _fn=NULL;
  624. T2 _i=0;
  625. C->_base_class=r69base_class((T69*)(X77start_position(r79item((T79*)((C)->_names/*8*/),1))));
  626. _i=1;
  627. while (!((_i)>(r79count((T79*)((C)->_names/*8*/))))) {
  628. _fn=r79item((T79*)((C)->_names/*8*/),_i);
  629. /*[IF*/
  630. if(r86has(((T86*)a1),X77to_key(_fn))){
  631. _fn=/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r86at(((T86*)a1),X77to_key(_fn))))->_names/*8*/)),1)/*)*/);
  632. r67add_position(X77start_position(_fn));
  633. r67add_position(X77start_position(r79item((T79*)((C)->_names/*8*/),_i)));
  634. r67error((T67*)(oBC11eh),((T0*)ms87_41905));
  635. /*[IRF3.6append*/{T0* b1=X77to_string(_fn);
  636. r7append((T7*)(oBC67explanation),b1);
  637. }/*]*/
  638. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  639. }
  640. else{
  641. r86put(((T86*)a1),(T0*)C,X77to_key(_fn));
  642. }
  643. /*FI]*/
  644. _i=(_i)+(1);
  645. }
  646. }
  647.  
  648.  
  649. T6 r195can_hide(T195* C,T0* a1,T0* a2){
  650. T6 R=0;
  651. /*[IF*/
  652. if(((C)->_result_type/*20*/)!=((void*)(X87result_type(a1)))){
  653. /*[IF*/
  654. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
  655. r67add_position(X87start_position(a1));
  656. r195error(r195start_position(C),((T0*)ms87_64647));
  657. }
  658. /*FI]*/
  659. }
  660. /*FI]*/
  661. /*[IF*/
  662. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X87arguments(a1)))){
  663. /*[IF*/
  664. {/*AT*/r67add_position(X87start_position(a1));
  665. r195error(r195start_position(C),((T0*)ms87_83182));
  666. }
  667. /*FI]*/
  668. }
  669. /*FI]*/
  670. /*[IF*/
  671. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  672. /*[IF*/
  673. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  674. /*[IF*/
  675. if(!(X46is_a_in((C)->_result_type/*20*/,X87result_type(a1),a2))){
  676. /*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
  677. r7append((T7*)(oBC67explanation),b1);
  678. }/*]*/
  679. /*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
  680. r7append((T7*)(oBC67explanation),b1);
  681. }/*]*/
  682. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  683. }
  684. /*FI]*/
  685. }
  686. /*FI]*/
  687. }
  688. /*FI]*/
  689. /*[IF*/
  690. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  691. /*[IF*/
  692. /*AF*//*AE*/
  693. /*FI]*/
  694. }
  695. /*FI]*/
  696. R=(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
  697. /*[IF*/
  698. if(R){
  699. r195merge_header_comments(C,a1);
  700. }
  701. /*FI]*/
  702. return R;
  703. }
  704. /*No:CST_ATT_STRING.ensure_assertion*/
  705.  
  706.  
  707. T0* r195try_to_undefine(T195* C,T0* a1,T0* a2){
  708. T0* R=NULL;
  709. T0* _fn2=NULL;
  710. r67add_position(X77start_position(a1));
  711. _fn2=r79feature_name((T79*)((C)->_names/*8*/),X77to_key(a1));
  712. /*[IF*/
  713. if((_fn2)!=((void*)(NULL))){
  714. X77undefine_in(_fn2,a2);
  715. }
  716. /*FI]*/
  717. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  718. /*]*/
  719. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  720. /*]*/
  721. /*]*/
  722. R=r195try_to_undefine_aux(C,a1,a2);
  723. /*[IF*/
  724. if((R)!=((void*)(NULL))){
  725. /*X270set_clients*//*[IRF3.3set_clients*/((((T273*)(((T273*)R))))->_clients)=((C)->_clients/*16*/);
  726. /*]*/
  727. r195merge_header_comments(C,R);
  728. }
  729. else{
  730. r22fatal_undefine(((T22*)a2),a1);
  731. }
  732. /*FI]*/
  733. return R;
  734. }
  735. /*No:CST_ATT_STRING.is_deferred*/
  736. /*No:CST_ATT_STRING.remainder*/
  737. /*No:CST_ATT_STRING.set_clients*/
  738.  
  739.  
  740. T0* r195value(T195* C,T2 a1){
  741. T0* R=NULL;
  742. /*[IF*/
  743. if((a1)==(1)){
  744. R=(C)->_first_value/*24*/;
  745. }
  746. else{
  747. R=/*(IRF4.6item*/(((T196*)((C)->_remainder/*28*/))->_storage/*4*/)[(a1)-(2)]/*)*/;
  748. }
  749. /*FI]*/
  750. return R;
  751. }
  752. /*No:CST_ATT_STRING.nb_errors*/
  753.  
  754.  
  755. T0* r195to_run_feature(T195* C,T0* a1,T0* a2){
  756. T0* R=NULL;
  757. T0* _rc=NULL;
  758. _rc=X46run_class(a1);
  759. R=r310at(((T310*)_rc),a2);
  760. if(NULL!=(R))switch(((T0*)R)->id) {
  761. case 326: 
  762. break;
  763. default:
  764. R=NULL;
  765. };/*[IF*/
  766. if((R)==((void*)(NULL))){
  767. {T326*n=malloc(sizeof(*n));
  768. *n=M326;
  769. r326make(n,a1,a2,(T0*)C);
  770. R=(T0*)n;
  771. }
  772. }
  773. /*FI]*/
  774. return R;
  775. }
  776.  
  777.  
  778. void r195merge_header_comments(T195* C,T0* a1){
  779. /*[IF*/
  780. if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
  781. /*[IF*/
  782. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  783. C->_header_comment=/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/);
  784. }
  785.  else if((/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  786. X87set_header_comment(a1,(C)->_header_comment/*12*/);
  787. }
  788. /*FI]*/
  789. }
  790. /*FI]*/
  791. }
  792. /*No:CST_ATT_STRING.arguments*/
  793. /*No:CST_ATT_STRING.require_assertion*/
  794.  
  795.  
  796. T0* r195try_to_undefine_aux(T195* C,T0* a1,T0* a2){
  797. T0* R=NULL;
  798. r67add_position(r195start_position(C));
  799. r195error(X77start_position(a1),((T0*)ms189_99414));
  800. r22fatal_undefine(((T22*)a2),a1);
  801. return R;
  802. }
  803. /*No:CST_ATT_STRING.fz_dot*/
  804.  
  805.  
  806. void r195error(T0* a1,T0* a2){
  807. r67add_position(a1);
  808. r67error((T67*)(oBC11eh),a2);
  809. }
  810.  
  811.  
  812. void r195make(T195* C,T0* a1,T0* a2,T0* a3){
  813. T2 _i=0;
  814. /*[IRF3.3make_e_feature*/((((T195*)(C)))->_names)=(a1);
  815. /*]*/
  816. C->_result_type=a2;
  817. C->_first_value=a3;
  818. _i=r79count((T79*)((C)->_names/*8*/));
  819. /*[IF*/
  820. if((_i)>(1)){
  821. _i=(_i)-(1);
  822. {T196*n=malloc(sizeof(*n));
  823. *n=M196;
  824. r196make(n,_i);
  825. C->_remainder=(T0*)n;
  826. }
  827. while (!((_i)==(0))) {
  828. _i=(_i)-(1);
  829. /*[IRF3.5put*/(((T196*)((C)->_remainder/*28*/))->_storage/*4*/)[_i]=(r158twin(((T158*)a3)));
  830. /*]*/
  831. }
  832. }
  833. /*FI]*/
  834. }
  835.  
  836.  
  837. void r195collect_for(T2 a1){
  838. T0* _er=NULL;
  839. /*[IF*/
  840. if((a1)==(1)){
  841. _er=/*(IRF4.1require_assertion*/NULL/*)*/;
  842. /*[IF*/
  843. if((_er)!=((void*)(NULL))){
  844. /*[IF*/
  845. if(!(r315fast_has((T315*)(oBC87require_collector),_er))){
  846. r315add_last((T315*)(oBC87require_collector),_er);
  847. }
  848. /*FI]*/
  849. }
  850. /*FI]*/
  851. }
  852. else{
  853. /*[IF*/
  854. /*AF*//*AE*/
  855. /*FI]*/
  856. }
  857. /*FI]*/
  858. }
  859. /*No:CST_ATT_STRING.set_header_comment*/
  860. /*No:CST_ATT_STRING.clients*/
  861. /*No:MANIFEST_ARRAY.nb_errors*/
  862. /*No:MANIFEST_ARRAY.start_position*/
  863.  
  864.  
  865. T0* r97add_comment(T97* C,T0* a1){
  866. T0* R=NULL;
  867. /*[IF*/
  868. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  869. R=(T0*)C;
  870. }
  871. else{
  872. {T218*n=malloc(sizeof(*n));
  873. *n=M218;
  874. r218make(n,(T0*)C,a1);
  875. R=(T0*)n;
  876. }
  877. }
  878. /*FI]*/
  879. return R;
  880. }
  881.  
  882.  
  883. T2 r97to_integer(T97* C){
  884. T2 R=0;
  885. r97error((C)->_start_position/*4*/,((T0*)ms12_45846));
  886. return R;
  887. }
  888.  
  889.  
  890. T0* r97type_any(void){
  891. if(fBC11type_any==0){
  892. fBC11type_any=1;
  893. {T247*n=malloc(sizeof(*n));
  894. *n=M247;
  895. r247make(n,NULL);
  896. oBC11type_any=(T0*)n;
  897. }
  898. }
  899. return oBC11type_any;}
  900. /*No:MANIFEST_ARRAY.fz_c_shift_right*/
  901. /*No:MANIFEST_ARRAY.fz_c_shift_left*/
  902.  
  903.  
  904. T0* r97to_runnable(T97* C,T0* a1){
  905. T0* R=NULL;
  906. T0* _t=NULL;
  907. T0* _e=NULL;
  908. T2 _i=0;
  909. /*[IF*/
  910. if(((C)->_current_type/*16*/)==((void*)(NULL))){
  911. C->_current_type=a1;
  912. /*[IF*/
  913. if(((C)->_list/*8*/)==((void*)(NULL))){
  914. _t=r97type_any();
  915. }
  916. else{
  917. _i=/*X98upper*/((T2)((T98*)((C)->_list/*8*/))->_upper/*12*/);
  918. while (!((_i)==(0))) {
  919. _e=X53to_runnable(/*X98item*/((T0*)r98item((T98*)((C)->_list/*8*/),_i)),a1);
  920. /*[IF*/
  921. if((_e)==((void*)(NULL))){
  922. r67add_position((C)->_start_position/*4*/);
  923. r97error(X53start_position(/*X98item*/((T0*)r98item((T98*)((C)->_list/*8*/),_i))),((T0*)ms97_63657));
  924. _i=0;
  925. }
  926. else{
  927. /*X98put*//*[IRF3.6put*/{T98* C1=(T98*)((C)->_list/*8*/);
  928. T0* b1=_e;
  929. T2 b2=_i;
  930. ((C1)->_storage/*4*/)[(b2)-((C1)->_lower/*16*/)]=(b1);
  931. }/*]*/
  932. /*[IF*/
  933. if((_t)==((void*)(NULL))){
  934. _t=X53result_type(_e);
  935. }
  936. else{
  937. _t=X46smallest_ancestor(_t,X53result_type(_e));
  938. }
  939. /*FI]*/
  940. _i=(_i)-(1);
  941. }
  942. /*FI]*/
  943. }
  944. }
  945. /*FI]*/
  946. /*[IF*/
  947. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  948. _t=X46run_type(_t);
  949. {T248*n=malloc(sizeof(*n));
  950. *n=M248;
  951. r248make(n,(C)->_start_position/*4*/,_t);
  952. C->_result_type=(T0*)n;
  953. }
  954. r310set_at_run_time((T310*)(r248run_class((T248*)((C)->_result_type/*12*/))));
  955. r248load_basic_features((T248*)((C)->_result_type/*12*/));
  956. R=(T0*)C;
  957. /*[IF*/
  958. if((X46is_reference(_t))&&(((C)->_list/*8*/)!=((void*)(NULL)))){
  959. _i=/*X98upper*/((T2)((T98*)((C)->_list/*8*/))->_upper/*12*/);
  960. while (!((_i)==(0))) {
  961. _t=X53result_type(/*X98item*/((T0*)r98item((T98*)((C)->_list/*8*/),_i)));
  962. /*[IF*/
  963. if(X46is_expanded(_t)){
  964. X46used_as_reference(_t);
  965. }
  966. /*FI]*/
  967. _i=(_i)-(1);
  968. }
  969. }
  970. /*FI]*/
  971. r348register((C)->_result_type/*12*/);
  972. }
  973. /*FI]*/
  974. }
  975.  else if(((C)->_list/*8*/)==((void*)(NULL))){
  976. R=(T0*)C;
  977. }
  978. else{
  979. {T97*n=malloc(sizeof(*n));
  980. *n=M97;
  981. r97make(n,(C)->_start_position/*4*/,X98twin((C)->_list/*8*/));
  982. R=(T0*)n;
  983. }
  984. R=r97to_runnable(((T97*)R),a1);
  985. }
  986. /*FI]*/
  987. return R;
  988. }
  989. /*No:MANIFEST_ARRAY.current_type*/
  990. /*No:MANIFEST_ARRAY.fz_iinaiv*/
  991. /*No:MANIFEST_ARRAY.result_type*/
  992.  
  993.  
  994. void r97error(T0* a1,T0* a2){
  995. r67add_position(a1);
  996. r67error((T67*)(oBC11eh),a2);
  997. }
  998. /*No:MANIFEST_ARRAY.precedence*/
  999.  
  1000.  
  1001. void r97make(T97* C,T0* a1,T0* a2){
  1002. C->_start_position=a1;
  1003. C->_list=a2;
  1004. }
  1005.  
  1006.  
  1007. void r97bracketed_short(T97* C){
  1008. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
  1009. r97short(C);
  1010. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
  1011. }
  1012. /*No:MANIFEST_ARRAY.is_current*/
  1013. /*No:MANIFEST_ARRAY.is_void*/
  1014.  
  1015.  
  1016. void r97short_target(T97* C){
  1017. r97bracketed_short(C);
  1018. /*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
  1019. r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
  1020. }/*]*/
  1021. }
  1022. /*No:MANIFEST_ARRAY.list*/
  1023.  
  1024.  
  1025. void r97short(T97* C){
  1026. T2 _i=0;
  1027. r39hook_or((T39*)(oBC11short_print),((T0*)ms97_2695),((T0*)ms12_246));
  1028. /*[IF*/
  1029. if(((C)->_list/*8*/)!=((void*)(NULL))){
  1030. _i=1;
  1031. while (!((_i)>(/*X98upper*/((T2)((T98*)((C)->_list/*8*/))->_upper/*12*/)))) {
  1032. X53short(/*X98item*/((T0*)r98item((T98*)((C)->_list/*8*/),_i)));
  1033. _i=(_i)+(1);
  1034. /*[IF*/
  1035. if((_i)<=(/*X98upper*/((T2)((T98*)((C)->_list/*8*/))->_upper/*12*/))){
  1036. r39hook_or((T39*)(oBC11short_print),((T0*)ms97_7224),((T0*)ms97_45));
  1037. }
  1038. /*FI]*/
  1039. }
  1040. }
  1041. /*FI]*/
  1042. r39hook_or((T39*)(oBC11short_print),((T0*)ms97_2615),((T0*)ms12_254));
  1043. }
  1044.  
  1045.  
  1046. T0* r273run_require(T0* a1){
  1047. T0* R=NULL;
  1048. T0* _ct=NULL;
  1049. T0* _ar=NULL;
  1050. T0* _hc=NULL;
  1051. T0* _er=NULL;
  1052. T0* _r=NULL;
  1053. T2 _i=0;
  1054. r315clear((T315*)(oBC87require_collector));
  1055. _ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
  1056. r22collect_for((T22*)(X46base_class(_ct)),1,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
  1057. /*[IF*/
  1058. if(!(r315empty((T315*)(oBC87require_collector)))){
  1059. _i=1;
  1060. while (!((_i)>(((T315*)(oBC87require_collector))->_upper/*8*/))) {
  1061. _er=r315item((T315*)(oBC87require_collector),_i);
  1062. _hc=(((T272*)_er))->_header_comment/*4*/;
  1063. /*[IF*/
  1064. if(!(/*(IRF4.7empty*/((((T272*)_er))->_list/*8*/)==(NULL)/*)*/)){
  1065. _r=r273runnable((((T272*)_er))->_list/*8*/,_ct,a1);
  1066. /*[IF*/
  1067. if((_r)!=((void*)(NULL))){
  1068. {T272*n=malloc(sizeof(*n));
  1069. *n=M272;
  1070. r272make_runnable(n,_r,_ct,a1);
  1071. _er=(T0*)n;
  1072. }
  1073. /*[IRF3.3set_header_comment*/((((T272*)(((T272*)_er))))->_header_comment)=(_hc);
  1074. /*]*/
  1075. /*[IF*/
  1076. if((_ar)==((void*)(NULL))){
  1077. _ar=se_ma315(1,
  1078. _er);
  1079. }
  1080. else{
  1081. r315add_last(((T315*)_ar),_er);
  1082. }
  1083. /*FI]*/
  1084. }
  1085. /*FI]*/
  1086. }
  1087. /*FI]*/
  1088. _i=(_i)+(1);
  1089. }
  1090. /*[IF*/
  1091. if((_ar)!=((void*)(NULL))){
  1092. {T314*n=malloc(sizeof(*n));
  1093. *n=M314;
  1094. /*[IRF3.3make*/((((T314*)(n)))->_list)=(_ar);
  1095. /*]*/
  1096. R=(T0*)n;
  1097. }
  1098. }
  1099. /*FI]*/
  1100. }
  1101. /*FI]*/
  1102. return R;
  1103. }
  1104. /*No:DEFERRED_FUNCTION.base_class*/
  1105.  
  1106.  
  1107. void r273set_rescue_compound(T273* C,T0* a1){
  1108. /*[IF*/
  1109. if((a1)!=((void*)(NULL))){
  1110. r67add_position(r204start_position(((T204*)a1)));
  1111. }
  1112. else{
  1113. r67add_position(r273start_position(C));
  1114. }
  1115. /*FI]*/
  1116. /*[IRF3.6append*/{T0* b1=((T0*)ms270_125161);
  1117. r7append((T7*)(oBC67explanation),b1);
  1118. }/*]*/
  1119. r67print_as_fatal_error((T67*)(oBC11eh));
  1120. }
  1121.  
  1122.  
  1123. T0* r273start_position(T273* C){
  1124. T0* R=NULL;
  1125. R=X77start_position(/*(IRF4.6first_name*/r79item(((T79*)((C)->_names/*8*/)),1)/*)*/);
  1126. return R;
  1127. }
  1128.  
  1129.  
  1130. T6 r273is_merge_with(T273* C,T0* a1,T0* a2){
  1131. T6 R=0;
  1132. R=1;
  1133. /*[IF*/
  1134. if(((C)->_result_type/*40*/)!=((void*)(X87result_type(a1)))){
  1135. /*[IF*/
  1136. if((((C)->_result_type/*40*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
  1137. R=0;
  1138. }
  1139. /*FI]*/
  1140. }
  1141. /*FI]*/
  1142. /*[IF*/
  1143. if(((C)->_arguments/*20*/)!=((void*)(X87arguments(a1)))){
  1144. /*[IF*/
  1145. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
  1146. R=0;
  1147. }
  1148.  else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  1149. R=0;
  1150. }
  1151. /*FI]*/
  1152. }
  1153. /*FI]*/
  1154. /*[IF*/
  1155. if(R){
  1156. /*[IF*/
  1157. if(((C)->_result_type/*40*/)!=((void*)(NULL))){
  1158. R=X46is_a_in((C)->_result_type/*40*/,X87result_type(a1),a2);
  1159. }
  1160. /*FI]*/
  1161. /*[IF*/
  1162. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  1163. R=r175is_a_in((T175*)((C)->_arguments/*20*/),X87arguments(a1),a2);
  1164. }
  1165. /*FI]*/
  1166. /*[IF*/
  1167. if(!(R)){
  1168. R=1;
  1169. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  1170. /*]*/
  1171. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  1172. /*]*/
  1173. /*]*/
  1174. /*[IF*/
  1175. if(((C)->_result_type/*40*/)!=((void*)(NULL))){
  1176. R=X46is_a_in(X87result_type(a1),(C)->_result_type/*40*/,a2);
  1177. }
  1178. /*FI]*/
  1179. /*[IF*/
  1180. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  1181. R=r175is_a_in((T175*)(X87arguments(a1)),(C)->_arguments/*20*/,a2);
  1182. }
  1183. /*FI]*/
  1184. }
  1185. /*FI]*/
  1186. }
  1187. /*FI]*/
  1188. /*[IF*/
  1189. if(R){
  1190. r273merge_header_comments(C,a1);
  1191. }
  1192. /*FI]*/
  1193. return R;
  1194. }
  1195.  
  1196.  
  1197. T0* r273runnable(T0* a1,T0* a2,T0* a3){
  1198. T0* R=NULL;
  1199. T0* _a=NULL;
  1200. T2 _i=0;
  1201. /*[IF*/
  1202. if(!(r50empty(((T50*)a1)))){
  1203. R=r50twin(((T50*)a1));
  1204. _i=(((T50*)R))->_upper/*8*/;
  1205. while (!((_i)==(0))) {
  1206. r59push((T59*)(oBC11small_eiffel),a3);
  1207. _a=r49to_runnable((T49*)(r50item(((T50*)R),_i)),a2);
  1208. /*[IF*/
  1209. if((_a)==((void*)(NULL))){
  1210. r273error(r49start_position((T49*)(r50item(((T50*)R),_i))),((T0*)ms12_14266));
  1211. }
  1212. else{
  1213. /*[IRF3.6put*/{T50* C1=((T50*)R);
  1214. T0* b1=_a;
  1215. T2 b2=_i;
  1216. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  1217. }/*]*/
  1218. }
  1219. /*FI]*/
  1220. r59pop((T59*)(oBC11small_eiffel));
  1221. _i=(_i)-(1);
  1222. }
  1223. }
  1224. /*FI]*/
  1225. return R;
  1226. }
  1227. /*No:DEFERRED_FUNCTION.first_name*/
  1228. /*No:DEFERRED_FUNCTION.em1*/
  1229. /*No:DEFERRED_FUNCTION.header_comment*/
  1230. /*No:DEFERRED_FUNCTION.names*/
  1231. /*No:DEFERRED_FUNCTION.fz_03*/
  1232. /*No:DEFERRED_FUNCTION.result_type*/
  1233. /*No:DEFERRED_FUNCTION.code_require*/
  1234. /*No:DEFERRED_FUNCTION.make_e_feature*/
  1235.  
  1236.  
  1237. void r273add_into(T273* C,T0* a1){
  1238. T0* _fn=NULL;
  1239. T2 _i=0;
  1240. C->_base_class=r69base_class((T69*)(X77start_position(r79item((T79*)((C)->_names/*8*/),1))));
  1241. _i=1;
  1242. while (!((_i)>(r79count((T79*)((C)->_names/*8*/))))) {
  1243. _fn=r79item((T79*)((C)->_names/*8*/),_i);
  1244. /*[IF*/
  1245. if(r86has(((T86*)a1),X77to_key(_fn))){
  1246. _fn=/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r86at(((T86*)a1),X77to_key(_fn))))->_names/*8*/)),1)/*)*/);
  1247. r67add_position(X77start_position(_fn));
  1248. r67add_position(X77start_position(r79item((T79*)((C)->_names/*8*/),_i)));
  1249. r67error((T67*)(oBC11eh),((T0*)ms87_41905));
  1250. /*[IRF3.6append*/{T0* b1=X77to_string(_fn);
  1251. r7append((T7*)(oBC67explanation),b1);
  1252. }/*]*/
  1253. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  1254. }
  1255. else{
  1256. r86put(((T86*)a1),(T0*)C,X77to_key(_fn));
  1257. }
  1258. /*FI]*/
  1259. _i=(_i)+(1);
  1260. }
  1261. }
  1262.  
  1263.  
  1264. T6 r273can_hide(T273* C,T0* a1,T0* a2){
  1265. T6 R=0;
  1266. /*[IF*/
  1267. if(((C)->_result_type/*40*/)!=((void*)(X87result_type(a1)))){
  1268. /*[IF*/
  1269. if((((C)->_result_type/*40*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
  1270. r67add_position(X87start_position(a1));
  1271. r273error(r273start_position(C),((T0*)ms87_64647));
  1272. }
  1273. /*FI]*/
  1274. }
  1275. /*FI]*/
  1276. /*[IF*/
  1277. if(((C)->_arguments/*20*/)!=((void*)(X87arguments(a1)))){
  1278. /*[IF*/
  1279. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
  1280. r67add_position(X87start_position(a1));
  1281. r273error(r273start_position(C),((T0*)ms87_83182));
  1282. }
  1283.  else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  1284. r67add_position(X87start_position(a1));
  1285. r273error(r273start_position(C),((T0*)ms87_67155));
  1286. }
  1287. /*FI]*/
  1288. }
  1289. /*FI]*/
  1290. /*[IF*/
  1291. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1292. /*[IF*/
  1293. if(((C)->_result_type/*40*/)!=((void*)(NULL))){
  1294. /*[IF*/
  1295. if(!(X46is_a_in((C)->_result_type/*40*/,X87result_type(a1),a2))){
  1296. /*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
  1297. r7append((T7*)(oBC67explanation),b1);
  1298. }/*]*/
  1299. /*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
  1300. r7append((T7*)(oBC67explanation),b1);
  1301. }/*]*/
  1302. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  1303. }
  1304. /*FI]*/
  1305. }
  1306. /*FI]*/
  1307. }
  1308. /*FI]*/
  1309. /*[IF*/
  1310. if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1311. /*[IF*/
  1312. if(((C)->_arguments/*20*/)!=((void*)(NULL))){
  1313. /*[IF*/
  1314. if(!(r175is_a_in((T175*)((C)->_arguments/*20*/),X87arguments(a1),a2))){
  1315. r67add_position(X87start_position(a1));
  1316. r67add_position(r273start_position(C));
  1317. /*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
  1318. r7append((T7*)(oBC67explanation),b1);
  1319. }/*]*/
  1320. /*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
  1321. r7append((T7*)(oBC67explanation),b1);
  1322. }/*]*/
  1323. r67error((T67*)(oBC11eh),((T0*)ms12_47));
  1324. }
  1325. /*FI]*/
  1326. }
  1327. /*FI]*/
  1328. }
  1329. /*FI]*/
  1330. R=(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
  1331. /*[IF*/
  1332. if(R){
  1333. r273merge_header_comments(C,a1);
  1334. }
  1335. /*FI]*/
  1336. return R;
  1337. }
  1338. /*No:DEFERRED_FUNCTION.ensure_assertion*/
  1339.  
  1340.  
  1341. T0* r273run_ensure(T0* a1){
  1342. T0* R=NULL;
  1343. T0* _ct=NULL;
  1344. T0* _r=NULL;
  1345. r50clear((T50*)(oBC87assertion_collector));
  1346. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1347. ((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
  1348. }/*]*/
  1349. _ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
  1350. r22collect_for((T22*)(X46base_class(_ct)),2,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
  1351. _r=r273runnable(oBC87assertion_collector,_ct,a1);
  1352. /*[IF*/
  1353. if((_r)!=((void*)(NULL))){
  1354. {T203*n=malloc(sizeof(*n));
  1355. *n=M203;
  1356. r203make_runnable(n,_r,_ct,a1);
  1357. R=(T0*)n;
  1358. }
  1359. /*[IRF3.3set_header_comment*/((((T203*)(((T203*)R))))->_header_comment)=(((T332*)(oBC87header_comment_memory))->_item/*0*/);
  1360. /*]*/
  1361. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1362. ((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
  1363. }/*]*/
  1364. }
  1365. /*FI]*/
  1366. return R;
  1367. }
  1368.  
  1369.  
  1370. void r273check_obsolete(T273* C){
  1371. /*[IF*/
  1372. if(!(((T59*)(oBC11small_eiffel))->_short_flag/*0*/)){
  1373. /*[IF*/
  1374. if(((C)->_obsolete_mark/*24*/)!=((void*)(NULL))){
  1375. /*[IRF3.6append*/{T0* b1=((T0*)ms202_39396);
  1376. r7append((T7*)(oBC67explanation),b1);
  1377. }/*]*/
  1378. /*[IRF3.6append*/{T0* b1=((T158*)((C)->_obsolete_mark/*24*/))->_to_string/*8*/;
  1379. r7append((T7*)(oBC67explanation),b1);
  1380. }/*]*/
  1381. r273warning(r273start_position(C),((T0*)ms12_166));
  1382. }
  1383. /*FI]*/
  1384. }
  1385. /*FI]*/
  1386. }
  1387.  
  1388.  
  1389. T0* r273try_to_undefine(T273* C,T0* a1,T0* a2){
  1390. T0* R=NULL;
  1391. T0* _fn2=NULL;
  1392. r67add_position(X77start_position(a1));
  1393. _fn2=r79feature_name((T79*)((C)->_names/*8*/),X77to_key(a1));
  1394. /*[IF*/
  1395. if((_fn2)!=((void*)(NULL))){
  1396. X77undefine_in(_fn2,a2);
  1397. }
  1398. /*FI]*/
  1399. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  1400. /*]*/
  1401. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  1402. /*]*/
  1403. /*]*/
  1404. R=/*(IRF4.4try_to_undefine_aux*/((T0*)(C))/*)*/;
  1405. /*[IF*/
  1406. if((R)!=((void*)(NULL))){
  1407. /*X270set_clients*//*[IRF3.3set_clients*/((((T273*)(((T273*)R))))->_clients)=((C)->_clients/*16*/);
  1408. /*]*/
  1409. r273merge_header_comments(C,R);
  1410. }
  1411. else{
  1412. r22fatal_undefine(((T22*)a2),a1);
  1413. }
  1414. /*FI]*/
  1415. return R;
  1416. }
  1417. /*No:DEFERRED_FUNCTION.is_deferred*/
  1418. /*No:DEFERRED_FUNCTION.set_clients*/
  1419. /*No:DEFERRED_FUNCTION.code_ensure*/
  1420. /*No:DEFERRED_FUNCTION.nb_errors*/
  1421.  
  1422.  
  1423. void r273make_routine(T273* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1424. /*[IRF3.3make_e_feature*/((((T273*)(C)))->_names)=(a1);
  1425. /*]*/
  1426. C->_header_comment=a4;
  1427. C->_arguments=a2;
  1428. C->_obsolete_mark=a3;
  1429. C->_require_assertion=a5;
  1430. }
  1431.  
  1432.  
  1433. T0* r273to_run_feature(T273* C,T0* a1,T0* a2){
  1434. T0* R=NULL;
  1435. r273check_obsolete(C);
  1436. {T330*n=malloc(sizeof(*n));
  1437. *n=M330;
  1438. r330make(n,a1,a2,(T0*)C);
  1439. R=(T0*)n;
  1440. }
  1441. return R;
  1442. }
  1443.  
  1444.  
  1445. void r273merge_header_comments(T273* C,T0* a1){
  1446. /*[IF*/
  1447. if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
  1448. /*[IF*/
  1449. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  1450. C->_header_comment=/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/);
  1451. }
  1452.  else if((/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  1453. X87set_header_comment(a1,(C)->_header_comment/*12*/);
  1454. }
  1455. /*FI]*/
  1456. }
  1457. /*FI]*/
  1458. }
  1459. /*No:DEFERRED_FUNCTION.arguments*/
  1460. /*No:DEFERRED_FUNCTION.require_assertion*/
  1461.  
  1462.  
  1463. void r273warning(T0* a1,T0* a2){
  1464. r67add_position(a1);
  1465. r67warning((T67*)(oBC11eh),a2);
  1466. }
  1467. /*No:DEFERRED_FUNCTION.try_to_undefine_aux*/
  1468. /*No:DEFERRED_FUNCTION.set_ensure_assertion*/
  1469. /*No:DEFERRED_FUNCTION.fz_bad_assertion*/
  1470. /*No:DEFERRED_FUNCTION.fz_dot*/
  1471.  
  1472.  
  1473. void r273error(T0* a1,T0* a2){
  1474. r67add_position(a1);
  1475. r67error((T67*)(oBC11eh),a2);
  1476. }
  1477.  
  1478.  
  1479. void r273make(T273* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
  1480. r273make_routine(C,a1,a2,a4,a5,a6);
  1481. C->_result_type=a3;
  1482. }
  1483. /*No:DEFERRED_FUNCTION.end_comment*/
  1484.  
  1485.  
  1486. void r273collect_for(T273* C,T2 a1){
  1487. T0* _er=NULL;
  1488. /*[IF*/
  1489. if((a1)==(1)){
  1490. _er=(C)->_require_assertion/*28*/;
  1491. /*[IF*/
  1492. if((_er)!=((void*)(NULL))){
  1493. /*[IF*/
  1494. if(!(r315fast_has((T315*)(oBC87require_collector),_er))){
  1495. r315add_last((T315*)(oBC87require_collector),_er);
  1496. }
  1497. /*FI]*/
  1498. }
  1499. /*FI]*/
  1500. }
  1501. else{
  1502. /*[IF*/
  1503. if(((C)->_ensure_assertion/*32*/)!=((void*)(NULL))){
  1504. /*[IRF3.3set_item*/((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(((T203*)((C)->_ensure_assertion/*32*/))->_header_comment/*4*/);
  1505. /*]*/
  1506. r203add_into((T203*)((C)->_ensure_assertion/*32*/),oBC87assertion_collector);
  1507. }
  1508. /*FI]*/
  1509. }
  1510. /*FI]*/
  1511. }
  1512.  
  1513.  
  1514. void r273from_effective(T273* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6){
  1515. {T79*n=malloc(sizeof(*n));
  1516. *n=M79;
  1517. /*[IRF3.3make_1*/((((T79*)(n)))->_first)=(a1);
  1518. /*]*/
  1519. C->_names=(T0*)n;
  1520. }
  1521. r273make(C,(C)->_names/*8*/,a2,a3,NULL,NULL,a4);
  1522. /*[IRF3.3set_ensure_assertion*/((((T273*)(C)))->_ensure_assertion)=(a5);
  1523. /*]*/
  1524. C->_base_class=a6;
  1525. }
  1526.  
  1527.  
  1528. void r273set_header_comment(T273* C,T0* a1){
  1529. /*[IF*/
  1530. if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)>(1))){
  1531. C->_end_comment=a1;
  1532. }
  1533. /*FI]*/
  1534. }
  1535. /*No:DEFERRED_FUNCTION.clients*/
  1536. /*No:DEFERRED_FUNCTION.obsolete_mark*/
  1537.  
  1538.  
  1539. T6 r74has(T74* C,T0* a1){
  1540. T6 R=0;
  1541. /*[IF*/
  1542. if(((C)->_procedure_list/*12*/)!=((void*)(NULL))){
  1543. R=r79has((T79*)((C)->_procedure_list/*12*/),a1);
  1544. }
  1545. /*FI]*/
  1546. return R;
  1547. }
  1548. /*No:CREATION_CLAUSE.fz_cbe*/
  1549. /*No:CREATION_CLAUSE.fatal_error_vtec_2*/
  1550. /*No:CREATION_CLAUSE.start_position*/
  1551. /*No:CREATION_CLAUSE.procedure_list*/
  1552.  
  1553.  
  1554. T0* r74expanded_initializer(T74* C,T0* a1){
  1555. T0* R=NULL;
  1556. /*[IF*/
  1557. if(((C)->_procedure_list/*12*/)!=((void*)(NULL))){
  1558. R=r310get_feature((T310*)(X46run_class(a1)),r79item((T79*)((C)->_procedure_list/*12*/),1));
  1559. if(NULL!=(R))switch(((T0*)R)->id) {
  1560. case 319: 
  1561. break;
  1562. default:
  1563. R=NULL;
  1564. };}
  1565. /*FI]*/
  1566. return R;
  1567. }
  1568.  
  1569.  
  1570. void r74make(T74* C,T0* a1,T0* a2,T0* a3,T0* a4){
  1571. C->_start_position=a1;
  1572. C->_clients=a2;
  1573. C->_comment=a3;
  1574. C->_procedure_list=a4;
  1575. }
  1576. /*No:CREATION_CLAUSE.comment*/
  1577. /*No:CREATION_CLAUSE.clients*/
  1578.  
  1579.  
  1580. T6 r74short(T74* C,T6 a1){
  1581. T6 R=0;
  1582. /*[IF*/
  1583. if(r94gives_permission_to_any((T94*)((C)->_clients/*4*/))){
  1584. /*[IF*/
  1585. if(!(a1)){
  1586. r39hook_or((T39*)(oBC11short_print),((T0*)ms74_5831),((T0*)ms74_5688));
  1587. }
  1588. /*FI]*/
  1589. /*[IF*/
  1590. if(((C)->_procedure_list/*12*/)!=((void*)(NULL))){
  1591. r79short_for_creation((T79*)((C)->_procedure_list/*12*/));
  1592. }
  1593. /*FI]*/
  1594. r39hook_or((T39*)(oBC11short_print),((T0*)ms74_5880),((T0*)ms74_0));
  1595. R=1;
  1596. }
  1597. else{
  1598. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
  1599. /*]*/
  1600. /*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
  1601. /*]*/
  1602. /*]*/
  1603. }
  1604. /*FI]*/
  1605. return R;
  1606. }
  1607. /*No:CREATION_CLAUSE.fatal_error*/
  1608.  
  1609.  
  1610. void r74check_expanded_with(T74* C,T0* a1){
  1611. T0* _rc=NULL;
  1612. T0* _rf3=NULL;
  1613. T0* _rf=NULL;
  1614. /*[IF*/
  1615. if(((C)->_procedure_list/*12*/)==((void*)(NULL))){
  1616. r67add_position((C)->_start_position/*0*/);
  1617. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms74_140500);
  1618. r67fatal_error((T67*)(oBC11eh),b1);
  1619. }/*]*/
  1620. }
  1621. /*FI]*/
  1622. /*[IF*/
  1623. if((r79count((T79*)((C)->_procedure_list/*12*/)))>(1)){
  1624. r67add_type(a1,((T0*)ms12_23835));
  1625. r67add_position((C)->_start_position/*0*/);
  1626. /*[IRF3.2fatal_error_vtec_2*//*[IRF3.6fatal_error*/{T0* b1=((T0*)ms11_572294);
  1627. r67fatal_error((T67*)(oBC11eh),b1);
  1628. }/*]*/
  1629. /*]*/
  1630. }
  1631. /*FI]*/
  1632. _rc=X46run_class(a1);
  1633. _rf=r310get_feature(((T310*)_rc),r79item((T79*)((C)->_procedure_list/*12*/),1));
  1634. /*[IF*/
  1635. if((_rf)==((void*)(NULL))){
  1636. r67add_position((C)->_start_position/*0*/);
  1637. /*[IRF3.6append*/{T0* b1=((T0*)ms74_28658);
  1638. r7append((T7*)(oBC67explanation),b1);
  1639. }/*]*/
  1640. r67add_type(a1,((T0*)ms74_10142));
  1641. r67print_as_fatal_error((T67*)(oBC11eh));
  1642. }
  1643. /*FI]*/
  1644. _rf3=_rf;
  1645. if(NULL!=(_rf3))switch(((T0*)_rf3)->id) {
  1646. case 319: 
  1647. break;
  1648. default:
  1649. _rf3=NULL;
  1650. };/*[IF*/
  1651. if((_rf3)==((void*)(NULL))){
  1652. r67add_position((C)->_start_position/*0*/);
  1653. r67add_position(X312start_position(_rf));
  1654. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms74_67122);
  1655. r67fatal_error((T67*)(oBC11eh),b1);
  1656. }/*]*/
  1657. }
  1658. /*FI]*/
  1659. /*[IF*/
  1660. if((r319arg_count(((T319*)_rf3)))>(0)){
  1661. r67add_type(a1,((T0*)ms12_23835));
  1662. r67add_position((C)->_start_position/*0*/);
  1663. r67add_position(r319start_position(((T319*)_rf3)));
  1664. /*[IRF3.6append*/{T0* b1=((T0*)ms74_46872);
  1665. r7append((T7*)(oBC67explanation),b1);
  1666. }/*]*/
  1667. /*[IRF3.2fatal_error_vtec_2*//*[IRF3.6fatal_error*/{T0* b1=((T0*)ms11_572294);
  1668. r67fatal_error((T67*)(oBC11eh),b1);
  1669. }/*]*/
  1670. /*]*/
  1671. }
  1672. /*FI]*/
  1673. }
  1674.  
  1675.  
  1676. T0* r228to_runnable_integer(T228* C,T0* a1){
  1677. T0* R=NULL;
  1678. T0* _e=NULL;
  1679. T0* _ct=NULL;
  1680. /*[IF*/
  1681. if(((C)->_e_when/*4*/)==((void*)(NULL))){
  1682. C->_e_when=a1;
  1683. _ct=/*X312current_type*/((T0*)((T326*)(r59top_rf((T59*)(oBC11small_eiffel))))->_current_type/*4*/);
  1684. _e=X53to_runnable((C)->_expression/*8*/,_ct);
  1685. /*[IF*/
  1686. if(((_e)!=((void*)(NULL)))&&(X46is_integer(X53result_type(_e)))){
  1687. C->_expression=_e;
  1688. C->_expression_value=X53to_integer((C)->_expression/*8*/);
  1689. r221add_when_item_1((T221*)((C)->_e_when/*4*/),(T0*)C);
  1690. }
  1691. else{
  1692. r228error(X53start_position((C)->_expression/*8*/),((T0*)ms12_21798));
  1693. }
  1694. /*FI]*/
  1695. R=(T0*)C;
  1696. }
  1697. else{
  1698. {T228*n=malloc(sizeof(*n));
  1699. *n=M228;
  1700. /*[IRF3.3make*/((((T228*)(n)))->_expression)=((C)->_expression/*8*/);
  1701. /*]*/
  1702. R=(T0*)n;
  1703. }
  1704. R=r228to_runnable_integer(((T228*)R),a1);
  1705. }
  1706. /*FI]*/
  1707. return R;
  1708. }
  1709.  
  1710.  
  1711. T0* r228start_position(T228* C){
  1712. T0* R=NULL;
  1713. R=X53start_position((C)->_expression/*8*/);
  1714. return R;
  1715. }
  1716.  
  1717.  
  1718. T0* r228twin(T228* C){
  1719. T0* R=NULL;
  1720. R=malloc(sizeof(*C));
  1721. *((T228*)R)=*C;
  1722. return R;
  1723. }
  1724. /*No:WHEN_ITEM_1.expression_value*/
  1725. /*No:WHEN_ITEM_1.expression*/
  1726. /*No:WHEN_ITEM_1.fz_bcv*/
  1727.  
  1728.  
  1729. void r228error(T0* a1,T0* a2){
  1730. r67add_position(a1);
  1731. r67error((T67*)(oBC11eh),a2);
  1732. }
  1733. /*No:WHEN_ITEM_1.make*/
  1734. /*No:WHEN_ITEM_1.e_when*/
  1735. /*No:WHEN_ITEM_1.clear_e_when*/
  1736. /*No:WHEN_ITEM_1.fz_biv*/
  1737.  
  1738.  
  1739. T0* r228to_runnable_character(T228* C,T0* a1){
  1740. T0* R=NULL;
  1741. T0* _e=NULL;
  1742. T0* _ct=NULL;
  1743. /*[IF*/
  1744. if(((C)->_e_when/*4*/)==((void*)(NULL))){
  1745. C->_e_when=a1;
  1746. _ct=/*X312current_type*/((T0*)((T326*)(r59top_rf((T59*)(oBC11small_eiffel))))->_current_type/*4*/);
  1747. _e=X53to_runnable((C)->_expression/*8*/,_ct);
  1748. /*[IF*/
  1749. if(((_e)!=((void*)(NULL)))&&(X46is_character(X53result_type(_e)))){
  1750. C->_expression=_e;
  1751. C->_expression_value=X53to_integer((C)->_expression/*8*/);
  1752. r221add_when_item_1((T221*)((C)->_e_when/*4*/),(T0*)C);
  1753. }
  1754. else{
  1755. r228error(X53start_position((C)->_expression/*8*/),((T0*)ms12_25940));
  1756. }
  1757. /*FI]*/
  1758. R=(T0*)C;
  1759. }
  1760. else{
  1761. {T228*n=malloc(sizeof(*n));
  1762. *n=M228;
  1763. /*[IRF3.3make*/((((T228*)(n)))->_expression)=((C)->_expression/*8*/);
  1764. /*]*/
  1765. R=(T0*)n;
  1766. }
  1767. R=r228to_runnable_character(((T228*)R),a1);
  1768. }
  1769. /*FI]*/
  1770. return R;
  1771. }
  1772. /*No:EXCEPTIONS_HANDLER.set_used*/
  1773. /*No:EXCEPTIONS_HANDLER.used*/
  1774. /*No:EXCEPTIONS_HANDLER.make*/
  1775. /*No:CALL_1_C.feature_name*/
  1776.  
  1777.  
  1778. void r139run_feature_match(T139* C,T0* a1){
  1779. r139run_feature_has_result(C);
  1780. r136match_with((T136*)((C)->_arguments/*12*/),(C)->_run_feature/*16*/,a1);
  1781. }
  1782. /*No:CALL_1_C.arguments*/
  1783.  
  1784.  
  1785. T0* r139runnable_expression(T0* a1,T0* a2){
  1786. T0* R=NULL;
  1787. R=X53to_runnable(a1,a2);
  1788. /*[IF*/
  1789. if((R)==((void*)(NULL))){
  1790. r67add_position(X53start_position(a1));
  1791. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms105_16515);
  1792. r67fatal_error((T67*)(oBC11eh),b1);
  1793. }/*]*/
  1794. }
  1795. /*FI]*/
  1796. return R;
  1797. }
  1798.  
  1799.  
  1800. T0* r139start_position(T139* C){
  1801. T0* R=NULL;
  1802. R=X77start_position((C)->_feature_name/*8*/);
  1803. return R;
  1804. }
  1805.  
  1806.  
  1807. T0* r139add_comment(T139* C,T0* a1){
  1808. T0* R=NULL;
  1809. /*[IF*/
  1810. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  1811. R=(T0*)C;
  1812. }
  1813. else{
  1814. {T218*n=malloc(sizeof(*n));
  1815. *n=M218;
  1816. r218make(n,(T0*)C,a1);
  1817. R=(T0*)n;
  1818. }
  1819. }
  1820. /*FI]*/
  1821. return R;
  1822. }
  1823.  
  1824.  
  1825. T2 r139to_integer(T139* C){
  1826. T2 R=0;
  1827. r139error(r139start_position(C),((T0*)ms12_45846));
  1828. return R;
  1829. }
  1830. /*No:CALL_1_C.dot_precedence*/
  1831.  
  1832.  
  1833. T0* r139to_runnable(T139* C,T0* a1){
  1834. T0* R=NULL;
  1835. T0* _rf=NULL;
  1836. T0* _a=NULL;
  1837. T0* _t=NULL;
  1838. _t=r139runnable_expression((C)->_target/*4*/,a1);
  1839. _a=r139runnable_args((C)->_arguments/*12*/,a1);
  1840. _rf=r139run_feature_for(C,_t,a1);
  1841. /*[IF*/
  1842. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  1843. C->_target=_t;
  1844. C->_arguments=_a;
  1845. C->_run_feature=_rf;
  1846. r139run_feature_match(C,a1);
  1847. R=(T0*)C;
  1848. }
  1849.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*12*/)))){
  1850. R=(T0*)C;
  1851. }
  1852. else{
  1853. {T139*n=malloc(sizeof(*n));
  1854. *n=M139;
  1855. r139with(n,_t,(C)->_feature_name/*8*/,_a,_rf,a1);
  1856. R=(T0*)n;
  1857. }
  1858. }
  1859. /*FI]*/
  1860. return R;
  1861. }
  1862. /*No:CALL_1_C.fz_bad_argument*/
  1863. /*No:CALL_1_C.arg1*/
  1864.  
  1865.  
  1866. void r139run_feature_has_result(T139* C){
  1867. /*[IF*/
  1868. if((X312result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  1869. r67add_position(X312start_position((C)->_run_feature/*16*/));
  1870. r67add_position(X77start_position((C)->_feature_name/*8*/));
  1871. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms104_53650);
  1872. r67fatal_error((T67*)(oBC11eh),b1);
  1873. }/*]*/
  1874. }
  1875. /*FI]*/
  1876. }
  1877. /*No:CALL_1_C.fz_iinaiv*/
  1878.  
  1879.  
  1880. T0* r139run_feature_for(T139* C,T0* a1,T0* a2){
  1881. T0* R=NULL;
  1882. T0* _rc=NULL;
  1883. _rc=X46run_class(X53result_type(a1));
  1884. R=r310get_rf(((T310*)_rc),a1,(C)->_feature_name/*8*/,a2);
  1885. return R;
  1886. }
  1887.  
  1888.  
  1889. T0* r139result_type(T139* C){
  1890. T0* R=NULL;
  1891. T0* _tla=NULL;
  1892. R=X312result_type((C)->_run_feature/*16*/);
  1893. /*[IF*/
  1894. if(X46is_like_current(R)){
  1895. R=/*X312current_type*/((T0*)((T326*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  1896. }
  1897. else{
  1898. _tla=R;
  1899. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1900. case 246: 
  1901. break;
  1902. default:
  1903. _tla=NULL;
  1904. };/*[IF*/
  1905. if((_tla)!=((void*)(NULL))){
  1906. R=X46run_type(X53result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*12*/)))->_first_one/*0*//*)*//*)*/));
  1907. }
  1908. /*FI]*/
  1909. }
  1910. /*FI]*/
  1911. return R;
  1912. }
  1913. /*No:CALL_1_C.target*/
  1914.  
  1915.  
  1916. void r139error(T0* a1,T0* a2){
  1917. r67add_position(a1);
  1918. r67error((T67*)(oBC11eh),a2);
  1919. }
  1920. /*No:CALL_1_C.run_feature*/
  1921. /*No:CALL_1_C.precedence*/
  1922.  
  1923.  
  1924. void r139make(T139* C,T0* a1,T0* a2,T0* a3){
  1925. C->_target=a1;
  1926. C->_feature_name=a2;
  1927. C->_arguments=a3;
  1928. }
  1929.  
  1930.  
  1931. T0* r139runnable_args(T0* a1,T0* a2){
  1932. T0* R=NULL;
  1933. R=r136to_runnable(((T136*)a1),a2);
  1934. /*[IF*/
  1935. if((R)==((void*)(NULL))){
  1936. r67add_position(r136start_position(((T136*)a1)));
  1937. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_13065);
  1938. r67fatal_error((T67*)(oBC11eh),b1);
  1939. }/*]*/
  1940. }
  1941. /*FI]*/
  1942. return R;
  1943. }
  1944.  
  1945.  
  1946. void r139bracketed_short(T139* C){
  1947. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
  1948. r139short(C);
  1949. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
  1950. }
  1951. /*No:CALL_1_C.is_current*/
  1952. /*No:CALL_1_C.is_void*/
  1953.  
  1954.  
  1955. void r139short_target(T139* C){
  1956. r139short(C);
  1957. /*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
  1958. r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
  1959. }/*]*/
  1960. }
  1961.  
  1962.  
  1963. void r139with(T139* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1964. C->_target=a1;
  1965. C->_feature_name=a2;
  1966. C->_arguments=a3;
  1967. C->_run_feature=a4;
  1968. r139run_feature_match(C,a5);
  1969. }
  1970.  
  1971.  
  1972. void r139short(T139* C){
  1973. X53short_target((C)->_target/*4*/);
  1974. X77short((C)->_feature_name/*8*/);
  1975. X53bracketed_short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*12*/)))->_first_one/*0*//*)*//*)*/);
  1976. }
  1977. /*No:CALL_1_C.fatal_error*/
  1978. /*No:CALL_0_C.feature_name*/
  1979.  
  1980.  
  1981. void r137run_feature_match(T137* C){
  1982. r137run_feature_has_result(C);
  1983. /*[IF*/
  1984. if((X312arg_count((C)->_run_feature/*12*/))>(0)){
  1985. r67add_position(X77start_position((C)->_feature_name/*8*/));
  1986. r67add_position(X312start_position((C)->_run_feature/*12*/));
  1987. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms128_50512);
  1988. r67fatal_error((T67*)(oBC11eh),b1);
  1989. }/*]*/
  1990. }
  1991. /*FI]*/
  1992. }
  1993.  
  1994.  
  1995. T0* r137runnable_expression(T0* a1,T0* a2){
  1996. T0* R=NULL;
  1997. R=X53to_runnable(a1,a2);
  1998. /*[IF*/
  1999. if((R)==((void*)(NULL))){
  2000. r67add_position(X53start_position(a1));
  2001. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms105_16515);
  2002. r67fatal_error((T67*)(oBC11eh),b1);
  2003. }/*]*/
  2004. }
  2005. /*FI]*/
  2006. return R;
  2007. }
  2008.  
  2009.  
  2010. T0* r137start_position(T137* C){
  2011. T0* R=NULL;
  2012. R=X77start_position((C)->_feature_name/*8*/);
  2013. return R;
  2014. }
  2015.  
  2016.  
  2017. T0* r137add_comment(T137* C,T0* a1){
  2018. T0* R=NULL;
  2019. /*[IF*/
  2020. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
  2021. R=(T0*)C;
  2022. }
  2023. else{
  2024. {T218*n=malloc(sizeof(*n));
  2025. *n=M218;
  2026. r218make(n,(T0*)C,a1);
  2027. R=(T0*)n;
  2028. }
  2029. }
  2030. /*FI]*/
  2031. return R;
  2032. }
  2033.  
  2034.  
  2035. T2 r137to_integer(T137* C){
  2036. T2 R=0;
  2037. T0* _rf1=NULL;
  2038. _rf1=(C)->_run_feature/*12*/;
  2039. if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
  2040. case 326: 
  2041. break;
  2042. default:
  2043. _rf1=NULL;
  2044. };/*[IF*/
  2045. if((_rf1)==((void*)(NULL))){
  2046. r137error(r137start_position(C),((T0*)ms12_45846));
  2047. }
  2048. else{
  2049. R=X53to_integer((((T326*)_rf1))->_value/*36*/);
  2050. }
  2051. /*FI]*/
  2052. return R;
  2053. }
  2054. /*No:CALL_0_C.dot_precedence*/
  2055.  
  2056.  
  2057. T0* r137to_runnable(T137* C,T0* a1){
  2058. T0* R=NULL;
  2059. T0* _path=NULL;
  2060. T2 _line=0;
  2061. T0* _rf=NULL;
  2062. T0* _t=NULL;
  2063. _line=/*(IRF4.6line*/(((T69*)(X53start_position((C)->_target/*4*/)))->_mem_line_column/*4*/)/(1000)/*)*/;
  2064. _path=r69path((T69*)(X53start_position((C)->_target/*4*/)));
  2065. _t=r137runnable_expression((C)->_target/*4*/,a1);
  2066. _rf=r137run_feature_for(C,_t,a1);
  2067. /*[IF*/
  2068. if(((C)->_run_feature/*12*/)==((void*)(NULL))){
  2069. C->_target=_t;
  2070. C->_run_feature=_rf;
  2071. r137run_feature_match(C);
  2072. R=(T0*)C;
  2073. }
  2074.  else if((_t)==((void*)((C)->_target/*4*/))){
  2075. R=(T0*)C;
  2076. }
  2077. else{
  2078. {T137*n=malloc(sizeof(*n));
  2079. *n=M137;
  2080. r137with(n,_t,(C)->_feature_name/*8*/,_rf);
  2081. R=(T0*)n;
  2082. }
  2083. }
  2084. /*FI]*/
  2085. return R;
  2086. }
  2087.  
  2088.  
  2089. void r137run_feature_has_result(T137* C){
  2090. /*[IF*/
  2091. if((X312result_type((C)->_run_feature/*12*/))==((void*)(NULL))){
  2092. r67add_position(X312start_position((C)->_run_feature/*12*/));
  2093. r67add_position(X77start_position((C)->_feature_name/*8*/));
  2094. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms104_53650);
  2095. r67fatal_error((T67*)(oBC11eh),b1);
  2096. }/*]*/
  2097. }
  2098. /*FI]*/
  2099. }
  2100. /*No:CALL_0_C.fz_iinaiv*/
  2101.  
  2102.  
  2103. T0* r137run_feature_for(T137* C,T0* a1,T0* a2){
  2104. T0* R=NULL;
  2105. T0* _rc=NULL;
  2106. _rc=X46run_class(X53result_type(a1));
  2107. R=r310get_rf(((T310*)_rc),a1,(C)->_feature_name/*8*/,a2);
  2108. return R;
  2109. }
  2110.  
  2111.  
  2112. T0* r137result_type(T137* C){
  2113. T0* R=NULL;
  2114. R=X312result_type((C)->_run_feature/*12*/);
  2115. /*[IF*/
  2116. if(X46is_like_current(R)){
  2117. R=/*X312current_type*/((T0*)((T326*)((C)->_run_feature/*12*/))->_current_type/*4*/);
  2118. }
  2119. /*FI]*/
  2120. return R;
  2121. }
  2122. /*No:CALL_0_C.target*/
  2123.  
  2124.  
  2125. void r137error(T0* a1,T0* a2){
  2126. r67add_position(a1);
  2127. r67error((T67*)(oBC11eh),a2);
  2128. }
  2129. /*No:CALL_0_C.run_feature*/
  2130. /*No:CALL_0_C.precedence*/
  2131.  
  2132.  
  2133. void r137make(T137* C,T0* a1,T0* a2){
  2134. C->_target=a1;
  2135. C->_feature_name=a2;
  2136. }
  2137.  
  2138.  
  2139. void r137bracketed_short(T137* C){
  2140. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
  2141. r137short(C);
  2142. r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
  2143. }
  2144. /*No:CALL_0_C.is_current*/
  2145. /*No:CALL_0_C.is_void*/
  2146.  
  2147.  
  2148. void r137short_target(T137* C){
  2149. r137short(C);
  2150. /*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
  2151. r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
  2152. }/*]*/
  2153. }
  2154.  
  2155.  
  2156. void r137with(T137* C,T0* a1,T0* a2,T0* a3){
  2157. C->_target=a1;
  2158. C->_feature_name=a2;
  2159. C->_run_feature=a3;
  2160. r137run_feature_match(C);
  2161. }
  2162.  
  2163.  
  2164. void r137short(T137* C){
  2165. X53short_target((C)->_target/*4*/);
  2166. X77short((C)->_feature_name/*8*/);
  2167. }
  2168. /*No:CALL_0_C.fatal_error*/
  2169.  
  2170.